效果如图所示,很简单的一个功能,但是因为我在这上面花了很多时间,所以我决定把它记录下来。
官方文档
示例
Bootstrap 提供的下拉菜单默认是通过鼠标点击触发,下面是一个简单的完整示例。
1 |
|
扩展 hover 事件
有时候希望鼠标放上去就展开菜单,而不需要鼠标点击,只需要一点简单的代码就可以实现:
1 | <style> |
为什么加上这几句就行了呢?因为 dropdown-menu
类的原来的样式是 display:none;
,所以设置 display:block;
之后 dropdown-menu
就会显示出来了。
问题一
当鼠标放上去时没有问题,但是如果鼠标点击之后就会出现问题。首先是位置,下拉菜单的位置改变了,其次是鼠标移走之后下拉菜单也不会自动关闭。
问题一的解决方法
删掉 button
标签的 data-toggle="dropdown"
,这个方法看起来一点也不优雅,但是目前只能想到这个。
问题二
本来下拉菜单是在右侧显示的,但是现在却是在下面显示。
问题二的解决方法
在 <style>
标签中添加:
1 | .dropright { |
总结
一开始我就搜到了解决办法,但是由于我太蠢了,看都不看直接复制,导致一直得不到想要的效果(根本原因是:别人的 HTML 代码跟官方示例不一样,所以直接复制过来自然没效果)。
后来找到了另一种方法,然后那个方法也有很大的缺陷:鼠标移走时下拉菜单不会关闭。尽管最后也解决了这个问题,但是效果并不好,而且有时还有 bug。
直到昨晚一点多终于搞明白了,一方面觉得自己真是蠢,抄代码都能抄歪来,另一方面没人分享自己的喜悦,所以有了这篇文章。
欢迎批评指点,如果对你有帮助那就更好了。
完整代码
1 |
|